
\chapter{Praca w~zadanej dystrybucji Linuxa}
\label{sec:PracaWzadanejDystrybucjiLinuxa}
\section{Początki Linuxa}

Linus Torvalds tworzył jądro Linux dla własnej przyjemności. Okazało się ono doskonałym dziełem i~źródłem darmowego oprogramowania w~połączeniu z~projektem GNU, którego inicjatorem był Richard Stallman.

Za ojca i~twórcę jądra Linux uważa się fińskiego programistę. To właśnie Linus Torvalds rozpoczął historię Linuksa w~1991 roku. Jego pierwotnym celem było stworzenie przez siebie niedużego, wolnego systemu operacyjnego, przeznaczonego dla procesorów z~rodzin i386 oraz i486. Torvalds uczęszczał na Uniwersytet Helsiński. Należy do zwolenników ruchu Otwartego Oprogramowania, któremu sam nadał impuls. Swoje dzieło tworzył głównie przy użyciu własnego sprzętu. Chciał posiadać wydajny system operacyjny typu UNIX, który musiał działać na jego domowym komputerze klasy PC. 

Pierwotna wersja została opublikowana 15 października 1991. Linus stworzył jednak tylko jądro i~potrzebował wielu elementów to skonstruowania pełnego systemu operacyjnego. mi potrzebami Linux stał się rozległym i~bardzo złożonym projektem, w~którym udziela się wiele osób w~sposób dobrowolny. Natomiast Linus Torvalds przede wszystkim nadzoruje jego rozwój. Zaufanym współpracownikom przekazuje opiekę nad wieloma podsystemami Linuksa oraz stabilnymi gałęziami kodu. W~celu konstrukcji kompletnego systemu i~narzędzi użyto oprogramowania GNU. Takie zastosowanie wymagało poważnych zmian w~przypadku niektórych komponentów systemu. 

Kolejnym etapem prac było zintegrowanie systemu do postaci dystrybucji. Umożliwiały one zainstalowanie systemu w~stosunkowo prosty sposób. Wszystkie takie systemy uzyskały wspólną nazwę GNU/Linux, a~jednym z~pierwszych był opublikowany 16 lipca 1993 Slackware Linux. W~wyniku takiej współpracy historia Linuksa wiąże się nieodłącznie z~projektem GNU. Inicjatorem tego projektu był Richard Stallman. Znany jest jako doskonały haker i~współtwórca licencji GNU GPL oraz wielu kluczowych programów. 

Sam projekt GNU miał na celu stworzenie systemu operacyjnego dostępnego dla każdego. Taki system zgodny z~Uniksem był już gotowy na początku lat dziewięćdziesiątych, gdy projekt GNU był ukończony z~wyjątkiem jądra. Prace nad jądrem GNU Hurd okazały się jednak bardzo trudne i~wtedy zdecydowano o~połączeniu jądra Torvaldsa z~projektem GNU, co dało kompletny i~wolny system. W~celu dalszego rozwoju systemu do akcji wkroczyła rzesza programistów z~całego świata. W~wyniku tych działań projekt rozwinął się do dzisiejszej postaci. Dzięki temu możemy cieszyć się stabilnym i~nowoczesnym systemem operacyjnym, który stał się konkurencyjny dla systemów komercyjnych\footnote{http://www.linuxcommunity.pl/strona/2452/historia-powstania.html}.

\subsection{Przykłady wykorzystania}
\begin{itemize}
\item wersje ratunkowe dla innych systemów operacyjnych (np. zabezpieczenie danych z~partycji NTFS/FAT)
\item serwer www
\item zaawansowane partycjonowanie i~operacje na dyskach
\item inteligentny dom (np. na Raspberry Pi)
\item system operacyjny dla urządzeń mobilnych (np. Android)
\item domowy serwer przechowywania plików, kopii zapasowych, streaminu
\item HTPC - Home Theatre PC, kino domowe
\item testowanie zabezpieczeń sieci WiFi (np. BackTrack)
\item serwer gier (minecraft, l2j)
\item superkomputery (np. LHC, Blue Gene)
\end{itemize}

\section{Dystrybucja Linuxa}

Dystrybucja to uniksowy kompletny system operacyjny zbudowany na bazie jądra Linux. W~skład dystrybucji, oprócz samego jądra, wchodzą podstawowe programy i~usługi takie, jak powłoka, skrypty startowe, narzędzia konfiguracyjne, a~także często duży zestaw aplikacji użytkowych. 

W obrębie dystrybucji używana jest jednolita organizacja plików konfiuracyjnych oraz wspólny mechanzm instalowania nowych aplikacji. Niekiedy terminem dystrybucja określa się także systemy zbudowane na bazie jąder innych niż Linux (np. GNU Hurd); szczególnie można tutaj wyróżnić klony dystrybucji uniksowych (np. Debian).

\section{Dostępne wersje systemu}
\begin{enumerate}
\item \textbf{Debian/GNU Linux} to uniwersalna, stabilna i~dojrzała dystrybucja. Odznacza się dużą liczbą pakietów oraz znakomitymi narzędziami do ich instalacji  APT-em oraz Synaptic-iem. Debian to dobry wybór zarówno na serwer (gałąź stabilna  stable) jak i~na desktop (gałąź testing).
Debian to bardzo rozpowszechniona dystrybucja GNU/Linuksa. Najpopularniejsza jeśli policzymy jego liczne pochodne. To właśnie na fundamencie Debiana zbudowano Ubuntu  numer 1 w~rankingu serwisu DistroWatch. Dzięki dużemu rozpowszechnieniu i~wielojęzycznej społeczności użytkowników, z~łatwością uzyskamy pomoc w~rodzimym języku na forach, Usnecie, IRC i~listach dyskusyjnych. Nie brakuje również artykułów ani samouczków. System ma niewielkie wymagania sprzętowe. 

\item \textbf{Linux Mint} to dystrybucja oparta na Ubuntu i~Debianie, skierowana do początkujących użytkowników. Dystrybucja kładzie nacisk na prostotę użytkowania, przydatne aplikacje i~pełne ich wsparcie zaraz po instalacji. Twórcy zadbali o~dodanie wielu graficznych nakładek. Na standardowej płycie instalacyjnej znajdziemy większość zamkniętego oprogramowania  plugin Flash Player, kodeki, Javę. Ma nieco większe wymagania sprzętowe, zważywszy na przyjazne użytkownikowi środowisko graficzne. Zaletami tej dystrybucji jest przejrzystość, prosty interfejs, łatwość konfiguracji i~intuicyjność.

\item \textbf{openSUSE} to dystrybucja GNU/Linuksa sponsorowana przez firmę Novell. Przeznaczona głównie na desktop. Zawiera dopracowane graficzne narzędzie konfiguracyjne YaST. Jest bardzo prosta w~instalacji i~użytkowaniu. openSUSE cechuje się bardzo dopracowanym pulpitem opartym na środowisku GNOME lub KDE (oczywiście dostępne są również inne, środowiska, które płynnie działają na starszych komputerach). openSUSE słynie ze swojego wszechstronnego narzędzia  YaST. Jest to kluczowy komponent dystrybucji. Użytkownik ma z~nim do czynienia już na etapie instalacji systemu  dzięki aplikacji YaST instalacja openSUSE jest łatwa nawet dla osób, które dopiero co zaczynają swoją przygodę z~Linuksem. Nie zawiodą się również zaawansowani użytkownicy, którzy mogą skorzystać z~trybu eksperta i~dostosować wszystkie opcje instalacji do swoich potrzeb. Wymagania sprzętowe są zbliżone do Minta i~innych dystrybucji korzystających z~menedżerów graficznych takich jak GNOME, czy KDE.
\end{enumerate}
\subsection{Struktura systemu Linux}

Podstawowym elementem Linuxa jest kernel, jego jądro. Każdy może stworzyć własną dystrybucję, kompilując otwarte źródło jądra z~uwzględnieniem potrzebnych modułów i~pakietów. Jądro odpowiedzialne jest za realizację wszystkich istotnych abstrakcji systemu operacyjnego, łącznie z~takimi elementami jak pamięć wirtualna i~procesy. Kolejnym elementem są biblioteki systemowe. Definiują one standardowy zbiór funkcji, za pomocą których aplikacje mogą współdziałać z~jądrem i~które realizują wiele właściwości systemu operacyjnego nie wymagających pełnych przywilejów kodu jądra.
Ostatnim elementem są pomoce systemowe. Są one programami, które wykonują osobne, specjalizowane zadania administracyjne. Z~niektórych pomocy systemowych można korzystać tylko jeden raz w~celu zapoczątkowania i~skonfigurowania pewnych elementów systemu; inne (w terminologii unixowej nazywane demonami) mogą działać nieustannie, obsługując takie zadania, jak odpowiadanie na sygnały nadchodzące z~sieci, przyjmowanie z~terminali zamówień na rozpoczęcie sesji lub uaktualnianie plików z~dziennikami zdarzeń systemowych.
\section{Instalacja Linuxa}
Poniżej przedstawię instalację najpopularniejszej dystrybucji Linuxa, jaką niewątpliwie jest Ubuntu, oparty na stabilnej gałęzi Debiana. Złośliwi twierdzą, że słowo "ubuntu" w~staroafrykańskim narzeczu oznacza "nie umiem zainstalować Debiana". Faktem bezspornym jest, że ta dystrybucja jest bardzo przyjazna użytkownikom, nawet takim, którzy nie mieli dotychczas kontaktu z~Linuxem.
\subsection{Zdobycie obrazu instalacyjnego Ubuntu}
Najprostszym rozwiązaniem wydaje się pobranie obrazu z~oficjalnych serwerów Canonical lub dowolnego serwera lustrzanego. Dawniej Canonical rozdawało niemal dowolną ilość płyt z~instalatorem Ubuntu każdemu, kto wypełnił formularz na ich stronie, jednak ta opcja była nadużywana i~była zbyt dużym obciążeniem finansowym.\\
Po instalacji własnego systemu opartego na wolnej licencji warto przekazać płytę instalacyjną komuś innemu, w~ten sposób upowszechniając ideę Open Source.\\
Pobrany obraz nagrywamy na płytę CD/DVD, wybierając rozsądną prędkość zapisu (nie szybszą niż 24x w~przypadku CD, czy 4x w~przypadku DVD).
\subsection{Instalacja z~LiveCD}
W ustawieniach BIOSu trzeba ustawić właściwą kolejność bootowania (CD/DVD na początku). Po uruchomieniu środowiska graficznego, należy wybrać opcję "Install Ubuntu ...". Następnie należy wybrać język instalatora i~standardowy język systemu.
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{fig/pracaWzadanejDystrybucjiLinuxa/1}
\end{figure}
\FloatBarrier
Następnie instalator sprawdza podstawowe kryteria powodzenia instalacji (dostępna powierzchnia dyskowa, podłączenie źródła zasilania i~dostęp do Internetu), a~także pyta nas, czy doinstalować oprogramowania na niezupełnie wolnych licencjach, w~szczególności kodeków MP3.
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{fig/pracaWzadanejDystrybucjiLinuxa/2}
\end{figure}
\FloatBarrier
Kolejnym krokiem jest partycjonowanie dysku. Warto wybrać opcję ręcznego partycjonowania, ponieważ mamy większą kontrolę nad tworzonymi partycjami i~możemy je utworzyć według indywidualnych kryteriów, w~zależności od potrzeb. Wybieramy opcję "Użycie innego rozwiązania".
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{fig/pracaWzadanejDystrybucjiLinuxa/3}
\end{figure}
\FloatBarrier
W kolejnym kroku tworzymy trzy partycję: z~punktami montowania w~/, /home i~partycję wymiany pamięci (SWAP). Jako system plików dla partycji / i~/home wybieramy ext4 z~księgowaniem.
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{fig/pracaWzadanejDystrybucjiLinuxa/4}
\end{figure}
\FloatBarrier
Po stworzeniu wszystkich potrzebnych partycji upewniamy się, że wszystko jest poprawne i~wybieramy "Zainstaluj".
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{fig/pracaWzadanejDystrybucjiLinuxa/5}
\end{figure}
\FloatBarrier
Teraz pozostaje wstępna konfiguracja systemu. Wybieramy strefę czasową (domyślnie z~językiem polskim wybrana jest Warszawa).
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{fig/pracaWzadanejDystrybucjiLinuxa/6}
\end{figure}
\FloatBarrier
W następnym kroku wybieramy układ klawiatury.
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{fig/pracaWzadanejDystrybucjiLinuxa/7}
\end{figure}
\FloatBarrier
Następnie wybieramy nazwę użytkownika i~wprowadzamy hasło dla konta.
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{fig/pracaWzadanejDystrybucjiLinuxa/8}
\end{figure}
\FloatBarrier
Po zakończeniu kopiowania plików instalator zapyta nas, czy chcemy uruchomić ponownie komputer, czy kontynuować testowanie wersji Live. Przed ponownym uruchomieniem należy wyjąć płytę instalacyjną z~napędu.